package com.snpic.appaw.module.third.config;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.snpic.appaw.framework.common.constants.SystemConstant;
import com.snpic.appaw.module.third.dal.dataobject.sms.TSmsTemplateConfig;
import com.snpic.appaw.module.third.dal.mysql.sms.TSmsTemplateConfigMapper;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Component;

import static com.snpic.appaw.module.third.enums.ThirdConstant.SMS_TEMPLATE_REDIS_KEY;

/**
 * @author JiJun
 * @date 2025/9/1 9:25
 * @修改时间 2025/9/1 9:25
 * @description
 */
@Slf4j
@Component("smsTemplateConfigInfo")
public class TSmsTemplateConfigInfo {

    @Resource
    private TSmsTemplateConfigMapper tSmsTemplateConfigMapper;

        /**
     * 根据模板key获取模板内容（使用Spring Cache注解）
     * @param key 模板key
     * @return 模板内容，未找到时返回null
     */
    @Cacheable(value = SMS_TEMPLATE_REDIS_KEY, key = "#key", unless = "#result == null")
    public String getTemplateByKey(String key) {
        // 直接查询数据库
        TSmsTemplateConfig template = tSmsTemplateConfigMapper.selectOne(
            Wrappers.<TSmsTemplateConfig>lambdaQuery()
                .eq(TSmsTemplateConfig::getTemplateKey, key)
                .eq(TSmsTemplateConfig::getStatus, SystemConstant.StrOne)
        );

        return template != null ? template.getTemplateContent() : null;
    }

}
